﻿using FluentScheduler;

namespace QuickCode.WebApi
{
    /// <summary>
    /// 任务调度计划
    /// </summary>
    public class FluentSchedulerFactory : Registry
    {
        /// <summary>
        /// 具体任务
        /// </summary>
        public FluentSchedulerFactory()
        {
            //让Job进行单线程跑，避免没跑完时的重复执行。(全局)
            NonReentrantAsDefault();

            ////指定时间执行计划任务（最常用，这里是在每天00：00执行。）
            //Schedule<LongYanResourceRefreshJob>().ToRunEvery(1).Days().At(0, 0);

            ////指定时间执行计划任务（最常用，这里是在每周00：00执行。）
            Schedule<MyJob>().ToRunEvery(1).Days().At(17, 36);

            //每30秒执行
            //Schedule<LongYanResourceRefreshJob>().ToRunNow().AndEvery(30).Seconds();

        }
    }
    /// <summary>
    /// 我的任务
    /// </summary>
    public class MyJob : IJob
    {
        void IJob.Execute()
        {
            Console.WriteLine("FluentScheduler/JobManager 任务调度开始.....");
            Console.WriteLine($"当前执行时间：{DateTime.Now.ToString("yyyyMMdd HH:mm:ss")}");
        }

    }
}
